<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
include "coneccionbdd.php";

class roles {


    public static function getTipoRolesUser($user_name) {
        $query = "SELECT r.rol_descripcion,u.id,u.usuario_nombre FROM usuarios_roles t
        inner join usuarios u on t.id_usuario
        inner join roles r on t.id_rol
        where u.usuario_nombre='$user_name' group by r.rol_descripcion";
        $resultado = mysqli_query(conexion::getConectar(), $query);
        $array_roles = array();
        while ($fila = mysqli_fetch_array($resultado)) {
            array_push($array_roles, $fila);
        }
        return $array_roles;
    }

    public static function getInfoUserSesion($datos) {
        $result = array();
        $username = $datos["usuario_nombre"];
        $password = $datos["password"];
        $query = "SELECT * FROM usuarios WHERE usuario_nombre='" . $username . "' AND password='" . $password . "'";
        $resultado = mysqli_query(coneccionbdd::getConectar(), $query);
        $numrows = mysqli_num_rows($resultado);
        if ($numrows != 0) {
            while ($fila = mysqli_fetch_array($resultado)) {
                $dbusername = $fila['usuario_nombre'];
                $dbpassword = $fila['password'];
            }
            mysqli_free_result($resultado);
            mysqli_close(coneccionbdd::getConectar());
            if ($username == $dbusername && $password == $dbpassword) {
                $result['existe_datos'] = true;
                $result['username'] = $username;
            }
        } else {
            $result['existe_datos'] = false;
            $message = "Nombre de usuario ó contraseña invalida!";
            $result['message'] = $message;
        }
        return $result;
    }

     public static function getCamposObligatoriosInicioSesion() {
        return array(
            'usuario_nombre' => 'usuario_nombre',
            'password' => 'password',
        );
    }
    
      public static function getMensajesInicioSesion() {
        return array(
            'usuario_nombre' => array('Ingrese Usuario.'),
            'password' => array('Ingrese Password.'),
        );
    }
    
    
    // VALIDAR DATOS INGRESADOS
    
     public static function getCamposObligatorios() {

        return array(
            'rol_descripcion' => 'rol_descripcion',
        );
    }
    
    public static function getError($data, $msj_tipo) {
        $camposobligatorios = $msj_tipo ? static:: getCamposObligatorios() : static::getCamposObligatoriosInicioSesion();
        $mensajes_campos = $msj_tipo ? static::getMensajes() : static::getMensajesInicioSesion();
        $arrayerrors = array();
        $guardar = true;
        foreach ($data as $key => $value) {
            $existe_campo = array_key_exists($key, $camposobligatorios);
            if ($existe_campo) {
                $hay_dato = ($value == null || $value == "") ? false : true; //Verifica que el campono este nullo ni vacio
                if (!$hay_dato) {
                    $guardar = false;
                    $arrayerrors[$key] = $mensajes_campos[$key];
                }
            }
        }
        $resultado = array('guardar' => $guardar, 'errores' => $arrayerrors);
        return $resultado;
    }

   
      public static function getMsjCamposObligatorios($data, $msj_tipo) {
        $camposobligatorios = static::getError($data, $msj_tipo);
        return array(
            'success' => $camposobligatorios["guardar"],
            'errors' => $camposobligatorios["errores"]
        );
    }

    public static function getMensajes() {
        return array(
            'rol_descripcion' => array('Ingrese la descripcion del rol'),
            
        );
    }

    // INSERTAR, ACTUALIZAR Y ELIMINAR

    public static function setInsertar($datos) {
        /**
         * Posiciones son las miismos campos q tiene en la bdd
         * datos["xnombrecampo"]
         */

        $rol_descripcion = $datos["rol_descripcion"];
        $estado = 1;
        $query = "INSERT INTO roles (rol_descripcion,estado) "
                . "VALUES ('$rol_descripcion','$estado')";
        $resultado = mysqli_query(coneccionbdd::getConectar(), $query);
        mysqli_close(coneccionbdd::getConectar()); // Cerramos la conexion con la base de datos
        return $resultado;
    }
    public static function setActualizar($datos){
        $id=$datos["id"];
        $rol_descripcion = $datos["rol_descripcion"];
        $estado = 1;
        
        $sql="UPDATE roles SET rol_descripcion='$rol_descripcion'"
                . ", estado='$estado'"
                . "WHERE id='$id'";
        
         $resultado = mysqli_query(coneccionbdd::getConectar(), $sql);
         mysqli_close(coneccionbdd::getConectar()); // Cerramos la conexion con la base de datos
        return $resultado;
    }

     public static function setEliminar ($datos){
        $id=$datos["id"];
        $sql="DELETE from roles WHERE id='$id";
        
        $resultado = mysqli_query(coneccionbdd::getConectar(), $sql);
         mysqli_close(coneccionbdd::getConectar()); // Cerramos la conexion con la base de datos
        return $resultado;
    }
    
    // OBTENER DATOS DE ROLES PARA EL GRID
    
    public static function getRolesTotal() {
        $query = "SELECT * FROM roles t";
        $resultado = mysqli_query(coneccionbdd::getConectar(), $query);
        $array_consulta = array();
        $count = 0;
        while ($fila = mysqli_fetch_array($resultado)) {
            array_push($array_consulta, $fila);
            $count++;
        }
        $array_resultado = array('total' => $count, 'result' => $array_consulta);
        return $array_resultado;
    }

    public static function getRolesTotalRango($limit, $offset) {
        $query = "SELECT * FROM roles t limit $offset ,$limit";
        $resultado = mysqli_query(coneccionbdd::getConectar(), $query);
        $array_consulta = array();
        $count = 0;
        while ($fila = mysqli_fetch_array($resultado)) {
            array_push($array_consulta, $fila);
            $count++;
        }
        $array_resultado = array('total' => $count, 'result' => $array_consulta);
        return $array_resultado;
    }

    public static function getRoles($data) {
        //Informacion Total
        $totalInformacion = static::getRolesTotal();
        $command_total = $totalInformacion['total'];
        //total
        $result['total'] = (int) $command_total;
        $current_page = isset($data['current']) ? (int) $data['current'] : 0; // control a error when 'current' not exist
        $limit = isset($data['rowCount']) ? $data['rowCount'] : 10;
        $offset = ($limit * ($current_page - 1));
        $result['current'] = $current_page;
        $result['rowCount'] = $limit;
        $resultadoPaginacion= static::getRolesTotalRango($limit, $offset);
        $result['rows'] = $result['total'] != 0 ? $resultadoPaginacion['result'] : array();
        return $result;
    }
    
    
       public static function getListSelect2($search_value = null) {
        $array_result = array();
        $conexion = new coneccionbdd();
        $q = '';        //    create variable for input
        $q .= " SELECT ";
        $q .= " t.id,t.rol_descripcion as text ";
        $q .= " FROM ";
        $q .= " roles t ";
        $q .= " WHERE ";
        $q .= " t.rol_descripcion, like ? ";
        $q .= "limit 10 ";
//        $array_result = $search_value ? $conexion->ObtenerResultadoSelectLikeCliente($q, $search_value) : static::getInfoClientesData();
        $array_result = $search_value ? $conexion->ObtenerResultado('Call pa_detalle_roles("' . $search_value . '")') : $conexion->ObtenerResultado("Select t.id, t.rol_descripcion as text from roles t limit 10");
        return $array_result;
    }

}
